package FinalExam;

/**
 * @Author 28021
 * @Date 2022/12/27
 */
//编写一个程序,模拟描述中的计算机的开机关机过程。
//先定义一个USB接口,在接口中定义好规范(启动,关闭);
//编写接口的实现类,比如键盘,鼠标类,实现接口的方法;
//编写计算机类,该类中允许 添加USB设备 ,有开机功能和关机功能,
//  开机时所有的USB设备都启动,
//关机时所有的USB设备都关闭
interface USB{
    void start();
    void close();
}
class Keyboard implements USB{
    public void start() {
        System.out.println("启动键盘");
    }
    public void close() {
        System.out.println("关闭键盘");
    }
}
class Mouse implements USB{
    public void start() {
        System.out.println("启动鼠标");
    }
    public void close() {
        System.out.println("关闭鼠标");
    }
}
class Computer{
    USB u1;
    USB u2;
    Computer(){}
    public Computer(USB u1, USB u2) {
        this.u1=u1;
        this.u2=u2;
    }
    void boot(){
        System.out.println("开机");
        u1.start();
        u2.start();
    }
    void shutdown(){
        System.out.println("准备关机");
        u1.close();
        u2.close();
        System.out.println("关机");
    }
}
//编写测试类:实例化计算机类,添加USB设备鼠标、键盘
// 测试开机和关机功能。
public class Test {
    public static void main(String[] args) {
        USB keyboard = new Keyboard();
        USB mouse = new Mouse();

        Computer computer = new Computer(keyboard,mouse);
        computer.boot();
        System.out.println("-------------");
        computer.shutdown();

    }
}
